package com.jcxy.mapper;

import com.jcxy.pojo.Menu;
import com.jcxy.pojo.Role;
import java.util.List;
import java.util.Map;

public interface RoleMapper {

    /**
     * 通过role_id查询role对象(连接权限表)
     * @param roleId
     * @return 返回role对象
     */
    public Role queryRoleJoinMenuById(Integer roleId);

    /**
     * 查询角色集合总数
     * @param dto 包含查询条件
     * @return
     */
    public Integer queryRoleCount(Map dto);

    /**
     * 查询角色集合
     * @param dto 查询条件
     * @return
     */
    public List<Role> queryRole(Map dto);

    /**
     * 通过role_id删除角色
     * @param role_id
     * @return
     */
    public int deleteRoleById(Integer role_id);

    /**
     * 通过role_id删除角色的权限
     * @param role_id
     * @return
     */
    public int deleteRolePowerByRoleId(Integer role_id);

    /**
     * 修改角色信息
     * @param dto
     * @return
     */
    public int updateRole(Map dto);

    /**
     * 新增角色
     * @param role
     * @return
     */
    public int insertRole(Role role);

    /**
     * 通过角色id查询所有菜单以及是否有权
     * @return
     */
    public List<Menu> queryAllMenuAndPowerById(Integer role_id);

    /**
     * 查询所有菜单id
     * @return
     */
    public List<Integer> queryAllMenuId();

    /**
     * 为角色添加权限
     * @param dto 包含role_id和menu_id
     * @return
     */
    public int insertRolePower(Map dto);

    /**
     * 修改角色权限
     * @param dto 包含role_id,menu_id,isShow
     * @return
     */
    int updateRolePower(Map dto);
}
